'''
代理：即确定使用LLM采取哪些行动的顺序。
代理的几个概念：
    工具：执行特定职责的函数，比如 搜索、数据库查找、Python REPL、其他链
    LLM： 大语言模型
    代理：要使用的代理，是一个引用支持代理类的字符串
'''
# 导入包
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI

# 使用语言模型来控制代理人
llm = OpenAI(temperature=0)

# 加载一些工具，比如加载serpapi 和 llm-math 工具使用LLM，因此我们需要传递它
tools = load_tools(["serpapi","llm-math"], llm=llm)

# 最后，使用工具、语言模型以及我们想要使用的代理人类型初始化一个代理人
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)

# 现在可以直接调用代理人执行文字交流
agent.run("Who is Leo DiCaprio's girlfriend? What is her current age raised to the 0.43 power?")

